# (1)	题目描述：
# 通过OpenCV读取一张图片，完成下面的操作：1、开运算 2、闭运算 3、线性对比度增强 4、非线性对比度增强：伽马变换、log变换和直方图均衡化
# (2)	题目要求：.
# ①　导入相关头文件
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

# ②　读入一张图片并转为灰度图
img = cv.imread('data/messi5.jpg', cv.IMREAD_GRAYSCALE)

# ③　将图像转变为二值图
ret, bin = cv.threshold(img, 127, 255, cv.THRESH_BINARY)

# ④　完成开运算
kernel = np.ones((5, 5), dtype=np.uint8)
opening = cv.morphologyEx(bin, cv.MORPH_OPEN, kernel, iterations=3)

# ⑤　完成闭运算
closing = cv.morphologyEx(bin, cv.MORPH_CLOSE, kernel, iterations=3)

# ⑥　完成线性对比度增强
# ⑦　运行结果正确
# ⑧　完成伽马变换
# ⑨　完成log变换
# ⑩　完成直方图均衡化
# 11　函数调用正确
# 12　图形显示正确
imgs_arr = [img, bin, opening, closing]
titles_arr = ['ori', 'bin', 'opening', 'closing']
spr = 2
spc = 2
spn = 0
for im, title in zip(imgs_arr, titles_arr):
    spn += 1
    plt.subplot(spr, spc, spn)
    plt.imshow(im, cmap='gray')
    plt.axis('off')
    plt.title(title)

# 13　加入必要注释
